package com.xiaof.store.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Created with IntelliJ IDEA.
 *
 * @ProjectName: store
 * @Package: com.xiaof.store.interceptor
 * @ClassName: LoginInterceptor
 * @Author: xiaof
 * @Description:定义一个拦截器
 * @Date: 2021/12/23 22:02
 * @Version: 1.0
 */
public class LoginInterceptor implements HandlerInterceptor {
    /**
     * 检测全局session对象中是否有uid数据，如果有则放行，如果没有则重定向到登录页面
     * @param request 请求对象
     * @param response 响应对象
     * @param handler 处理器（url+controller映射）
     * @return 如果返回值为true则放行，如果为false则拦截当前的请求
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        Object obj = request.getSession().getAttribute("uid");
        if (obj==null){
            //说明没有登陆，重定向到登陆页面
            response.sendRedirect("/web/login.html");
            return false;
        }
        //请求放行
        return true;
    }
}
